home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / MAJOR / Convert / symbols-to-tonality < prev   
Lisp/Scheme  |  1998-10-23  |  3KB  |  84 lines

  1. symbols-to-tonality
  2.     symbols symbol-pattern
  3.             transpose transpose-patterns
  4.               mapping tonality-descriptions
  5.  
  6. Maps symbols in symbol-pattern to tonalities described in tonality-zones using transpose-patterns to control the transposition. The function returns a list of tonality zones. transpose-patterns describe how each symbol is transposed before it is mapped onto a tonality zone.
  7.  
  8. This function creates tonality note lists from symbol patterns. The ouput tonality can serve again as a mapper to new symbols. This process quickly creates very high ordered, but non-random tonalities. The function symbols-to-tonality is a challenging concept that can be expressed in a variety of ways. In its simplest form it can let the composer view the mapping of symbols onto a tonality. Here is an example showing a tonality output that directly follows the shapes of the symbol patterns.
  9.  
  10. (activate-tonality (chromatic c 3))
  11. --> ((c 3 c# 3 d 3 d# 3 e 3 f 3 f# 3 g 3 g# 3 a 3 a# 3 b 3))
  12.  
  13. (setq symb1 '(a b c d e f g))
  14. (setq symb2 '(b d e d e))
  15.  
  16. (setq tonal 
  17.    (flatten
  18.     (symbols-to-tonality
  19.         symbols (append symb1 symb2)
  20.         transpose '((0))
  21.         mapping (activate-tonality (chromatic c 3))))
  22. )
  23.  
  24. --> (c 3 c# 3 d 3 d# 3 e 3 f 3 f# 3 c# 3 d# 3 e 3 d# 3 e 3)
  25.      a   b    c   d    e   f   g    b    d    e   d    e 
  26.    
  27. Transpositions
  28.  
  29. However, the transpose section of this function enables far more complex mapping to take place. Not only can each symbol of the pattern be mapped to a tonality but the symbol pattern itself can become a template for a sequence of tonalities, its symbols controlling the degree of transposition. The result is a unique sequence of tonality descriptions.
  30.  
  31. (setq tonal  
  32.     (symbols-to-tonality
  33.         symbols '(a b c d)
  34.         transpose '((0 1 2) (0 3 2 1))
  35.         mapping (activate-tonality (chromatic c 3)))
  36. )
  37.  
  38. ((c 3 c# 3 d 3) (c# 3 e 3 d# 3 d 3) (d 3 d# 3 e 3) (d# 3 f# 3 f 3 e 3))
  39.   a   (0 1 2)    b    (0 3 2 1)      c   (0 1 2)    d   (0 3 2 1)
  40.  
  41. Multiple Tonalities
  42.  
  43. This shows how you can apply multiple tonalities as template for symbol mapping to produce more complex tonalities.
  44.  
  45. (setq chords2
  46.     (symbols-to-tonality
  47.         symbols '(a b c d)
  48.         transpose '((0 1) (3 4 5))
  49.         mapping (activate-tonality 
  50.                  (chromatic c 3) 
  51.                  (chromatic c 2) 
  52.                  (chromatic c 1))
  53.     )
  54. )
  55. --> ((c 3 |C#| 3) (e 2 f 2 |F#| 2) (d 1 |D#| 1) (|F#| 3 g 3 |G#| 3))
  56.  
  57. Note that it is the symbols, which are transposed, not the notes. If you use a major scale then the transpose scheme 0 2 4 gives you a triad arpeggio, which position is determined by the symbol pattern. This triad is projected in different levels in the major scale according the input symbol pattern, a creates Ist level chord, b the 2nd level chord etc.
  58.  
  59. (setq symbols '(a b c d e f g))
  60. (setq chords
  61.     (symbols-to-tonality
  62.         symbols symbols
  63.         transpose '((0 1) (3 4 5))
  64.         mapping (activate-tonality (chromatic c 3))
  65.     )
  66. )
  67. --> ((c 3 c# 3) (e 3 f 3 f# 3) (d 3 d# 3) (f# 3 g 3 g#3) 
  68.      (e 3 f 3) (g# 3 a 3 a# 3) (f# 3 g 3)))
  69.  
  70. (symbols-to-tonality
  71.     symbols '(a b c d e f)
  72.     transpose '((0))
  73.     mapping (activate-tonality (chromatic c 3))
  74. )
  75. --> ((c 3) (c# 3) (d 3) (d# 3) (e 3) (f 3))
  76.  
  77. (symbols-to-tonality
  78.     symbols '(a -b -c -d -e -f)
  79.     transpose '((0))
  80.     mapping (activate-tonality (chromatic c 3))
  81. )
  82. --> ((c 3) (b 2) (a# 2) (a 2) (g# 2) (g 2))
  83.  
  84.